package com.hb.G_协程.B_提取函数重构

import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking


/**
 * 它启动了 1 万个协程，并且在 5 秒钟后，每个协程都输出一个点。
 * 现在，尝试使用线程来实现。会发生什么？（很可能你的代码会产生某种内存不足的错误）
 */
fun main() = runBlocking {
    repeat(100) { // 启动大量的协程
        //repeat也是一个函数，表示执行times次的action操作
        //使用lambda表达式的时候，可以不显示的去定义lambda的参数，可以是使用it去代替
        //传给repeat 第二个参数是lambda,需要的是一个有int参数没有返回值的函数
        //action: (Int) -> Unit  Int参数是基于索引为0传递给action的操作
        /**
                 for (index in 0 until times) {
                action(index)
                }
         */
        launch {
            delay(50L)
            println(it)
            print(".")
        }
    }


//    repeat(100,action = {
//        launch {
//            delay(50L)
//            println(it)
//            print(".")
//        }
//    })
}